// @Author EthanScriptOn
// @Desc
package interceptor

// SrfSwitchInterceptorOptions The interceptor interface provides the functions of result organization,
// exception handling, interception, and condition judgment
type SrfSwitchInterceptorOptions interface {
	ResultAccessor
	Call()
	OnError(err error)
	IsPassThrough() (bool, error)
}

// SrfSwitchInterceptorErrorHandler Exception Processor
type SrfSwitchInterceptorErrorHandler interface {
	HandleError(err error)
}

// ConditionChecker Condition judge
type ConditionChecker interface {
	ShouldExecute(checkerInstance interface{}) (bool, error)
}
